package kr.or.kosta.otr.service.reviewservice;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import kr.or.kosta.otr.vo.CompanyReviewVO;
import kr.or.kosta.otr.vo.CompanyReviewVerifyVO;
import kr.or.kosta.otr.vo.CompanyVO;
import kr.or.kosta.otr.vo.IndustryVO;
import kr.or.kosta.otr.vo.InterestCompanyVO;
import kr.or.kosta.otr.vo.MentorVO;
import kr.or.kosta.otr.vo.MessageTypeVO;
import kr.or.kosta.otr.vo.MessageVO;
import kr.or.kosta.otr.vo.ProfessionVO;
import kr.or.kosta.otr.vo.RegionVO;
import kr.or.kosta.otr.vo.ScoreVO;
import kr.or.kosta.otr.vo.TrueOrFalseVO;

public interface ReviewService {
	ArrayList<CompanyVO> getAllCompany() throws SQLException;
	ArrayList<IndustryVO> getAllIndustry() throws SQLException;
	ArrayList<ProfessionVO> getAllProfession() throws SQLException;
	ArrayList<RegionVO> getAllRegion() throws SQLException;
	void writeCompanyReview(CompanyReviewVO vo) throws SQLException;
	ArrayList<CompanyVO> getCompanyInfo(HashMap<String, Object> map) throws SQLException;
	IndustryVO getIndustry(HashMap<String, Object> map)throws SQLException;
	ProfessionVO getProfession(HashMap<String, Object> map)throws SQLException;
	int writeCompanyReviewVerify(CompanyReviewVerifyVO vo)throws SQLException;
	void writeScore(ScoreVO scoreVo)throws SQLException;
	ArrayList<CompanyReviewVO> getCompanyReviewByCompanyName(String companyName) throws SQLException;
	void updateTotalScore(int scoreId) throws SQLException; 
	RegionVO getRegion(HashMap<String, Object> map)throws SQLException;
	float getCompanyScoreTotal(int companyId)throws SQLException;
	float getTotalScoreOfChance(int companyId) throws SQLException;
	float getTotalScoreOfWelfare(int companyId) throws SQLException;
	float getTotalScoreOfCulture(int companyId) throws SQLException;
	float getTotalScoreOfHoliday(int companyId) throws SQLException;
	float getTotalScoreOfExecutive(int companyId) throws SQLException;
	float getTotalScoreOfOverdue(int companyId) throws SQLException;
	ArrayList<CompanyReviewVerifyVO> getOneCompanyReviewVerify(int companyReviewId)throws SQLException;
	ArrayList<TrueOrFalseVO> getCompanyReviewVerifyByCompanyId(int companyId)throws SQLException;
	CompanyVO getOneCompany(int companyId)throws SQLException;
	int isExistCompanyReviewVerifyByCompanyId(int companyId)throws SQLException;
	void insertTruthOrFalse(int companyRevicewVerifyId) throws SQLException;
	void increaseTruth(HashMap<String, Object> map)throws SQLException;
	void increaseObjection(HashMap<String, Object> map)throws SQLException;
	String getOneTruthByReviewVerifyId(int companyRevicewVerifyId)throws SQLException;
	String getOneObjectionByReviewVerifyId(int companyRevicewVerifyId)throws SQLException;
	void updatePointPlus(HashMap<String, Object> map)throws SQLException;
	int getUserPoint(String userId)throws SQLException;
	void setCompanyTotalScore(HashMap<String, Object> map) throws SQLException;
	
	ArrayList<InterestCompanyVO> getAllInterestCompanyList(int companyId)throws SQLException;
	MessageTypeVO getMessageType(HashMap<String, Object> map)throws SQLException;
	void writeMessage (MessageVO vo)throws SQLException;
	ArrayList<MentorVO> getAllMentor(HashMap<String, Object> map)throws SQLException;
	ArrayList<TrueOrFalseVO> getCompanyReviewVerifyByCompanyIdPage(HashMap<String, Object> map)throws SQLException;
	int getCompanyReviewVerifyByCompanyIdTotal (int companyId)throws SQLException;
}
